#!/bin/bash

# OpenWhisk CLI 安装配置脚本
# 使用方法: sudo ./install_wsk.sh [API_HOST] [AUTH_KEY]
# 示例: sudo ./install_wsk.sh 192.168.1.23:31001 "23bc46b1...RU4VrNZ9lyGVCGuMDGIwP"

set -e  # 遇到错误立即退出

# 默认配置（可通过命令行参数覆盖）
DEFAULT_API_HOST="192.168.1.23:31001"
DEFAULT_AUTH_KEY="23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP"

# 解析命令行参数
API_HOST=${1:-$DEFAULT_API_HOST}
AUTH_KEY=${2:-$DEFAULT_AUTH_KEY}

# 下载配置
DOWNLOAD_URL="https://github.com/apache/openwhisk-cli/releases/download/1.2.0/OpenWhisk_CLI-1.2.0-linux-amd64.tgz"
TAR_FILE="OpenWhisk_CLI-1.2.0-linux-amd64.tgz"
INSTALL_DIR="/home"
BIN_PATH="/usr/local/bin/wsk"

# 检查是否以root运行
if [ "$(id -u)" -ne 0 ]; then
    echo "请使用sudo运行此脚本!"
    exit 1
fi

echo "=== 开始安装 OpenWhisk CLI ==="

# 1. 下载
echo "正在下载 OpenWhisk CLI..."
wget -q $DOWNLOAD_URL -P $INSTALL_DIR || {
    echo "下载失败!"
    exit 1
}

# 2. 解压
echo "解压安装包..."
tar -xzvf $INSTALL_DIR/$TAR_FILE -C $INSTALL_DIR || {
    echo "解压失败!"
    exit 1
}

# 3. 安装二进制文件
echo "安装 wsk 到系统路径..."
chmod +x $INSTALL_DIR/wsk
mv $INSTALL_DIR/wsk $BIN_PATH

# 4. 清理安装包
rm $INSTALL_DIR/$TAR_FILE

# 5. 配置连接信息
echo "配置 OpenWhisk 连接..."
wsk property -i set \
  --apihost "$API_HOST" \
  --auth "$AUTH_KEY" || {
    echo "配置失败!"
    exit 1
}

echo "=== 安装完成 ==="
echo "OpenWhisk CLI 已配置连接到: $API_HOST"
echo "可通过 'wsk property get' 测试连接"